package com.dragon.modules.yuegou.model.product;

import com.dragon.modules.yuegou.entity.product.HelpMemberRefEntity;
import com.dragon.modules.yuegou.enums.product.HelpMemberRefStatus;
import io.swagger.annotations.ApiModelProperty;
import org.hibernate.validator.constraints.Length;

import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;

/**
 * 会员参加助力活动表模型类
 * 
 * @author px
 * @date 2019-04-12 09:24:07
 * @company sgy
 * @version 2.0
 * @see Length 长度限制
 * @see NotNull 对象非空
 * @see NotEmpty 字符串、集合、表、数组非空
 */
public class HelpMemberRef extends HelpMemberRefEntity {

	@ApiModelProperty("助力的Sku属性")
	private Sku sku;

	@ApiModelProperty("好友助力记录")
	private List<HelpMemberJoinin> helpMemberJoininList;
	
	@ApiModelProperty("所属商圈")
	private String busdName;

	@ApiModelProperty("发起人")
	private String memberNickName;

	@ApiModelProperty("发起人数")
	private Integer createCount;

	@ApiModelProperty("参与人数")
	private Integer joinCount;

	@ApiModelProperty("发起人手机")
	private String memberMobile;

	@ApiModelProperty("发起人头像")
	private String memberHeadImg;

	@ApiModelProperty("商品名称")
	private String skuTitle;

	@ApiModelProperty("商品名称")
	private String skuImage;

	@ApiModelProperty("活动名称")
	private String helpName;

	@ApiModelProperty("原价")
	private BigDecimal helpPrice;

	@ApiModelProperty("购买价")
	private BigDecimal helpDiscount;

	@ApiModelProperty("最后一次助力值")
	private BigDecimal lastHelpValue;

	@ApiModelProperty("助力百分比")
	private BigDecimal detailHelpPercent;

	@ApiModelProperty("结束日期倒计时")
	private String letTime;

	@ApiModelProperty("助力成功日期加3天")
	private LocalDateTime addTime;

	@ApiModelProperty("助力成功日期加3天的倒计时")
	private String letAddTime;

	@ApiModelProperty("助力规则")
	private String helpRule;

	@ApiModelProperty("助力活动状态：[枚举]活动状态：0-未开始-READY、1-进行中-NORMAL、2-已停止-STOP、2-已过期-EXPIRE")
	private Integer helpStatus;

	@ApiModelProperty("我的助力结束倒计时-单位毫秒")
	private Long countdownTime;

	@ApiModelProperty("我是否已经助力过 0-未助力、1-已助力、 2-自己")
	private Integer myHelpStatus;

	@ApiModelProperty("还需多少人助力")
	private Integer surplusPeople;

    @ApiModelProperty("助力活动信息")
	private Help help;

	@ApiModelProperty("订单物品ID")
	private String goodsId;

	private String maskNickName;

	public String getMaskNickName() {
		return maskNickName;
	}

	public void setMaskNickName(String maskNickName) {
		this.maskNickName = maskNickName;
	}
	
	public String getGoodsId() {
		return goodsId;
	}

	public void setGoodsId(String goodsId) {
		this.goodsId = goodsId;
	}

	@Override
	public String getOrderNo() {
		return orderNo;
	}

	@Override
	public void setOrderNo(String orderNo) {
		this.orderNo = orderNo;
	}

    public Help getHelp() {
        return help;
    }

    public void setHelp(Help help) {
        this.help = help;
    }

    public Integer getCreateCount() {
		return createCount;
	}

	public void setCreateCount(Integer createCount) {
		this.createCount = createCount;
	}

	public Integer getJoinCount() {
		return joinCount;
	}

	public void setJoinCount(Integer joinCount) {
		this.joinCount = joinCount;
	}

	public Integer getMyHelpStatus() {
		return myHelpStatus;
	}

	public void setMyHelpStatus(Integer myHelpStatus) {
		this.myHelpStatus = myHelpStatus;
	}

	public Integer getSurplusPeople() {
		return surplusPeople;
	}

	public void setSurplusPeople(Integer surplusPeople) {
		this.surplusPeople = surplusPeople;
	}

	public Integer getHelpStatus() {
		return helpStatus;
	}

	public void setHelpStatus(Integer helpStatus) {
		this.helpStatus = helpStatus;
	}

	public Long getCountdownTime() {
		return countdownTime;
	}

	public void setCountdownTime(Long countdownTime) {
		this.countdownTime = countdownTime;
	}

//	@JsonView({ MyHelpDetailView.class})
	public String getHelpRule() {
		return helpRule;
	}

	public void setHelpRule(String helpRule) {
		this.helpRule = helpRule;
	}

	public BigDecimal getHelpPrice() {
		return helpPrice;
	}

	public void setHelpPrice(BigDecimal helpPrice) {
		this.helpPrice = helpPrice;
	}

	public String getSkuImage() {
		return skuImage;
	}

	public void setSkuImage(String skuImage) {
		this.skuImage = skuImage;
	}

	public LocalDateTime getAddTime() {
		return addTime;
	}

	public void setAddTime(LocalDateTime addTime) {
		this.addTime = addTime;
	}

	public String getLetAddTime() {
		return letAddTime;
	}

	public void setLetAddTime(String letAddTime) {
		this.letAddTime = letAddTime;
	}

	public String getLetTime() {
		return letTime;
	}

	public void setLetTime(String letTime) {
		this.letTime = letTime;
	}

	public BigDecimal getDetailHelpPercent() {
		return detailHelpPercent;
	}

	public void setDetailHelpPercent(BigDecimal detailHelpPercent) {
		this.detailHelpPercent = detailHelpPercent;
	}

	public Sku getSku() {
		return sku;
	}

	public void setSku(Sku sku) {
		this.sku = sku;
	}
	public List<HelpMemberJoinin> getHelpMemberJoininList() {
		return helpMemberJoininList;
	}

	public void setHelpMemberJoininList(List<HelpMemberJoinin> helpMemberJoininList) {
		this.helpMemberJoininList = helpMemberJoininList;
	}

	public BigDecimal getLastHelpValue() {
		return lastHelpValue;
	}

	public void setLastHelpValue(BigDecimal lastHelpValue) {
		this.lastHelpValue = lastHelpValue;
	}

	public String getBusdName() {
		return busdName;
	}

	public void setBusdName(String busdName) {
		this.busdName = busdName;
	}

	public String getMemberNickName() {
		return memberNickName;
	}

	public void setMemberNickName(String memberNickName) {
		this.memberNickName = memberNickName;
	}

	public String getMemberMobile() {
		return memberMobile;
	}

	public void setMemberMobile(String memberMobile) {
		this.memberMobile = memberMobile;
	}

	public String getMemberHeadImg() {
		return memberHeadImg;
	}

	public void setMemberHeadImg(String memberHeadImg) {
		this.memberHeadImg = memberHeadImg;
	}

	public String getSkuTitle() {
		return skuTitle;
	}

	public void setSkuTitle(String skuTitle) {
		this.skuTitle = skuTitle;
	}

	public String getHelpName() {
		return helpName;
	}

	public void setHelpName(String helpName) {
		this.helpName = helpName;
	}

	public BigDecimal getHelpDiscount() {
		return helpDiscount;
	}

	public void setHelpDiscount(BigDecimal helpDiscount) {
		this.helpDiscount = helpDiscount;
	}

	/**
	 * 构造一个空会员参加助力活动表模型对象
	 */
	public HelpMemberRef(){
		super();
	}
	
	/**
	 * 依据实体对象的信息构造一个会员参加助力活动表模型对象
	 * 
	 * @param entity 实体对象
	 */
	public HelpMemberRef(HelpMemberRefEntity entity){
		super(entity);
	}

	/**
	 * 依据其它对象的信息构造一个会员参加助力活动表模型对象
	 * 
	 * @param other 其它对象
	 */
	public HelpMemberRef(HelpMemberRef other){
		super(other);
	}


	@Override
	public String getId() {
    	return id;
    }

    /**
	 * 设置
	 * 
	 * @param id 
	 * @return 当前对象
	 */
    public HelpMemberRef id(String id) {
    	this.id = id;
    	return this;
    }

	@Override
	public String getBusdId() {
    	return busdId;
    }

    /**
	 * 设置商圈ID
	 * 
	 * @param busdId 商圈ID
	 * @return 当前对象
	 */
    public HelpMemberRef busdId(String busdId) {
    	this.busdId = busdId;
    	return this;
    }

	@Override
	public String getMemberId() {
    	return memberId;
    }

    /**
	 * 设置会员ID
	 * 
	 * @param memberId 会员ID
	 * @return 当前对象
	 */
    public HelpMemberRef memberId(String memberId) {
    	this.memberId = memberId;
    	return this;
    }

	@Override
	public String getHelpId() {
    	return helpId;
    }

    /**
	 * 设置助力活动ID
	 * 
	 * @param helpId 助力活动ID
	 * @return 当前对象
	 */
    public HelpMemberRef helpId(String helpId) {
    	this.helpId = helpId;
    	return this;
    }

	@Override
	public String getSkuId() {
    	return skuId;
    }

    /**
	 * 设置SKUID
	 * 
	 * @param skuId SKUID
	 * @return 当前对象
	 */
    public HelpMemberRef skuId(String skuId) {
    	this.skuId = skuId;
    	return this;
    }

	@Override
	public LocalDateTime getBuyTime() {
    	return buyTime;
    }

    /**
	 * 设置购买时间
	 * 
	 * @param buyTime 购买时间
	 * @return 当前对象
	 */
    public HelpMemberRef buyTime(LocalDateTime buyTime) {
    	this.buyTime = buyTime;
    	return this;
    }

	@Override
	public LocalDateTime getEndTime() {
    	return endTime;
    }

    /**
	 * 设置结束时间
	 * 
	 * @param endTime 结束时间
	 * @return 当前对象
	 */
    public HelpMemberRef endTime(LocalDateTime endTime) {
    	this.endTime = endTime;
    	return this;
    }

	@Override
	public LocalDateTime getSuccessTime() {
    	return successTime;
    }

    /**
	 * 设置助力成功时间
	 * 
	 * @param successTime 助力成功时间
	 * @return 当前对象
	 */
    public HelpMemberRef successTime(LocalDateTime successTime) {
    	this.successTime = successTime;
    	return this;
    }

	@Override
	public Integer getMinPeopleQey() {
    	return minPeopleQey;
    }

    /**
	 * 设置助力最小人数
	 * 
	 * @param minPeopleQey 助力最小人数
	 * @return 当前对象
	 */
    public HelpMemberRef minPeopleQey(Integer minPeopleQey) {
    	this.minPeopleQey = minPeopleQey;
    	return this;
    }

	@Override
	public Integer getMaxPeopleQey() {
    	return maxPeopleQey;
    }

    /**
	 * 设置助力最大人数
	 * 
	 * @param maxPeopleQey 助力最大人数
	 * @return 当前对象
	 */
    public HelpMemberRef maxPeopleQey(Integer maxPeopleQey) {
    	this.maxPeopleQey = maxPeopleQey;
    	return this;
    }

	@Override
	public Integer getNowPeopleQey() {
    	return nowPeopleQey;
    }

    /**
	 * 设置当前助力人数
	 * 
	 * @param nowPeopleQey 当前助力人数
	 * @return 当前对象
	 */
    public HelpMemberRef nowPeopleQey(Integer nowPeopleQey) {
    	this.nowPeopleQey = nowPeopleQey;
    	return this;
    }

	@Override
	public BigDecimal getHelpMaxValue() {
    	return helpMaxValue;
    }

    /**
	 * 设置助力最大值
	 * 
	 * @param helpMaxValue 助力最大值
	 * @return 当前对象
	 */
    public HelpMemberRef helpMaxValue(BigDecimal helpMaxValue) {
    	this.helpMaxValue = helpMaxValue;
    	return this;
    }

	@Override
	public BigDecimal getHelpNowValue() {
    	return helpNowValue;
    }

    /**
	 * 设置助力当前值
	 * 
	 * @param helpNowValue 助力当前值
	 * @return 当前对象
	 */
    public HelpMemberRef helpNowValue(BigDecimal helpNowValue) {
    	this.helpNowValue = helpNowValue;
    	return this;
    }

	@Override
	public BigDecimal getHelpPercent() {
    	return helpPercent;
    }

    /**
	 * 设置助力百分比
	 * 
	 * @param helpPercent 助力百分比
	 * @return 当前对象
	 */
    public HelpMemberRef helpPercent(BigDecimal helpPercent) {
    	this.helpPercent = helpPercent;
    	return this;
    }

	@Override
	public LocalDateTime getCreatedTime() {
    	return createdTime;
    }

    /**
	 * 设置发起活动时间
	 * 
	 * @param createdTime 发起活动时间
	 * @return 当前对象
	 */
    public HelpMemberRef createdTime(LocalDateTime createdTime) {
    	this.createdTime = createdTime;
    	return this;
    }

	@Override
	public HelpMemberRefStatus getStatus() {
    	return status;
    }

    /**
	 * 设置[枚举]助力状态：0-进行中-PROCESS、1-已成功-SUCCESS、2-已购买-BUYED、3-已结束-END
	 * 
	 * @param status [枚举]助力状态：0-进行中-PROCESS、1-已成功-SUCCESS、2-已购买-BUYED、3-已结束-END
	 * @return 当前对象
	 */
    public HelpMemberRef status(HelpMemberRefStatus status) {
    	this.status = status;
    	return this;
    }

	@Override
	public String getPosterImg() {
		return posterImg;
	}

	/**
	 * 设置海报图片
	 *
	 * @param posterImg 海报图片
	 * @return 当前对象
	 */
	public HelpMemberRef posterImg(String posterImg) {
		this.posterImg = posterImg;
		return this;
	}
}
